As server systems become more and more complex, the hardware and firmware used to provide additional functionality are becoming larger and are consuming both computing resources and processor clock cycles. Gone are the days of the simple BIOS which provided basic input/output system capabilities to the OS. Now there is an extensible framework interface (EFI) that allows for a type of mini operating system (OS) to reside between the BIOS and the main OS, such as Windows®, Linux®, Apple® iOS®, and others. The EFI provides a framework with an abstract interface set for transferring control to an OS or building modular firmware from one or more silicon and firmware suppliers. These abstract interfaces allow for the decoupling of the development of producer and consumer code, allowing each to innovate more independently and with faster time to market for both. The EFI also helps overcome hardware scaling limitations that the original IBM® compatible PC design assumed, allowing for much broader development across high-end enterprise servers, modem PC's and embedded devices. Lastly, EFI framework is generally “processor architecture-agnostic”, as it is used to support x86, x64, ARM, and Intel Itanium processors.
One of the features of EFI is its ability to help set up the system during the boot-up process as well as provide a fail-safe and non-volatile (NV) storage for driver and system variables to allow machines that experience major crashes or other system errors to recover back to a known operating state. Nonetheless, there is always a constant force in the computing industry to continue to lower costs while increasing performance. Accordingly, improvement in the current performance and cost structure of EFI implementation is sought after.